home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 050 / madtrb30.arc / MOUSE.PAS < prev    next >
Pascal/Delphi Source File  |  1985-05-09  |  3KB  |  137 lines

  1. { Functions and subroutines for use with the PC Mouse. }
  2.  
  3. Type
  4.   registers = record
  5.                 ax,bx,cx,dx,bp,si,di,ds,es,Flags : integer;
  6.               end;
  7. Var
  8.   MouseR          : registers;
  9.   m1, m2, m3, m4  : integer;
  10.   mouse           : boolean;
  11.  
  12. function MsMouse : boolean;
  13. var
  14.   mseg, m  : integer;
  15. Begin
  16.   mseg := 256 * mem[$0000:0207] + mem[$0000:0206];
  17.   m    := 256 * mem[$0000:0205] + mem[$0000:0206];
  18.   if (mseg <> 0) and (m <> 2) then
  19.     Msmouse := true
  20.   else
  21.     msmouse := false;
  22. end;  { MsMouse }
  23.  
  24. Procedure Reset_mouse;  { resets mouse internal variables }
  25. begin
  26.   Mouser.ax := 0;
  27.   intr ($33, mouser);
  28. end;
  29.  
  30. Procedure Show_mouse;  { displays the mouse cursor on the screen }
  31. begin
  32.   Mouser.ax := 1;
  33.   intr ($33, mouser);
  34. end;
  35.  
  36. Procedure Hide_mouse;  { Hides the mouse cursor on the screen }
  37. begin
  38.   Mouser.ax := 2;
  39.   intr ($33, mouser);
  40. end;
  41.  
  42. Procedure Get_mouse_status (Var m2, m3, m4 : integer);
  43. begin
  44.   Mouser.ax := 3;
  45.   intr ($33, mouser);
  46.     m2 := mouser.bx;
  47.     m3 := mouser.cx;
  48.     m4 := mouser.dx;
  49. end;
  50.  
  51. Procedure Put_mouse ( x, y : integer);
  52. begin
  53.     mouser.ax := 4;
  54.     mouser.cx := x;
  55.     mouser.dx := y;
  56.   intr ($33, mouser);
  57. end;
  58.  
  59. Procedure Get_mouse_button_pressed (Var m1, m2, m3, m4 : integer);
  60. begin
  61.     mouser.ax := 5;
  62.     mouser.bx := m2;
  63.   intr ($33, mouser);
  64.     m1 := mouser.ax;
  65.     m2 := mouser.bx;
  66.     m3 := mouser.cx;
  67.     m4 := mouser.dx;
  68. end;
  69.  
  70. Procedure Get_mouse_button_released (Var m1, m2, m3, m4 : integer);
  71. begin
  72.     mouser.ax := 6;
  73.     mouser.bx := m2;
  74.   intr ($33, mouser);
  75.     m1 := mouser.ax;
  76.     m2 := mouser.bx;
  77.     m3 := mouser.cx;
  78.     m4 := mouser.dx;
  79. end;
  80.  
  81. Procedure Set_mouse_X_range (Min, Max : integer);
  82. begin
  83.     mouser.ax := 7;
  84.     mouser.cx := min;
  85.     mouser.dx := max;
  86.   intr ($33, mouser);
  87. end;
  88.  
  89. Procedure Set_mouse_Y_range (Min, Max : integer);
  90. begin
  91.     mouser.ax := 8;
  92.     mouser.cx := min;
  93.     mouser.dx := max;
  94.   intr ($33, mouser);
  95. end;
  96.  
  97. Procedure Set_Graphics_Icon (Var xspot, yspot, icon_pointer : integer);
  98. begin
  99.     mouser.ax := 9;
  100.     mouser.bx := xspot;
  101.     mouser.cx := yspot;
  102.     mouser.dx := icon_pointer;
  103.   intr ($33, mouser);
  104. end;
  105.  
  106. Procedure Set_text_cursor (cursor_type, start, stop : integer);
  107. begin
  108.     mouser.ax := 10;
  109.     mouser.bx := cursor_type;
  110.     mouser.cx := start;
  111.     mouser.dx := stop;
  112.   intr ($33, mouser);
  113. end;
  114.  
  115. Procedure Mouse_motion (Var xcounter, ycounter : integer);
  116. begin
  117.   mouser.ax := 11;
  118.   intr ($33, mouser);
  119.     xcounter := mouser.cx;
  120.     ycounter := mouser.dx;
  121. end;
  122.  
  123. Procedure mouse_mickeys (x, y : integer);
  124. begin
  125.     mouser.ax := 15;
  126.     mouser.cx := x;
  127.     mouser.dx := y;
  128.   intr ($33, mouser);
  129. end;
  130.  
  131. Procedure mouse_DST (mickeys : integer);
  132. begin
  133.     mouser.ax := 19;
  134.     mouser.dx := mickeys;
  135.   intr ($33, mouser);
  136. end;
  137.